#include <stdio.h>

int compare(int * a1,int * a2){
    if(a1[0]>a2[0])
    {
        return 1;
    }
    else if (a1[0]<a2[0])
    {
        return 0;
    }
    else{
        return a1[1]>a2[1];
    }
}

void sort(int** array,int n)
{
    int i,j;
    int** queue=new int*[n];
    int start=0;
    int end=1;
    queue[start]=new int[2];
    queue[start][0]=0;
    queue[start][1]=n;
    //开始快排
    while (start<end)
    {
        int s=queue[start][0];
        int e=queue[start][1];
        
        i=s;
        j=e-1;
        int tmpIndex=j;
        int* tmp=array[tmpIndex];
        while (i<j)
        {
            if(tmpIndex==j)
            {
                //前面大于后面
                if(compare(array[i],tmp))
                {
                    array[tmpIndex]=array[i];
                    tmpIndex=i;
                    // tmp=array[tmpIndex];
                }
            }
            else
            {
                //前面大于后面
                if(compare(tmp,array[j]))
                {
                    array[tmpIndex]=array[j];
                    tmpIndex=j;
                    // tmp=array[tmpIndex];
                }
            }

            if(tmpIndex==j)
            {
                i++;
            }
            else{
                j--;
            }

            
        }

        array[i]=tmp;

        start++;
        if(s<i)
        {
            end++;
            queue[end-1]=new int[2];
            queue[end-1][0]=s;
            queue[end-1][1]=i;
        }

        if(i+1<e)
        {
            end++;
            queue[end-1]=new int[2];
            queue[end-1][0]=i+1;
            queue[end-1][1]=e;
        }
    }

    for(i=0;i<end;i++)
    {
        delete queue[i];
    }
    delete queue;
}

void printArray(int** input,int n)
{
    for(int i=0;i<n;i++)
    {
        printf("%d\t%d\n",input[i][0],input[i][1]);
    }
    printf("\n");
}

int main(){
    int n;
    int **input;
    int i;
    scanf("%d",&n);
    input=new int*[n];
    
    int num=0;
    int tmp;
    for(i=0;i<n;i++)
    {
        input[i]=new int[2];
        scanf("%d",&tmp);
        if(tmp)
        {
            num++;
        }
        else{
            num--;
        }
        input[i][0]=num;
        input[i][1]=i;
    }
    sort(input,n);
    // printArray(input,n);

    int start=input[0][1];
    int flag=input[0][0];
    int result=0;
    for(i=1;i<n;i++)
    {
        if(start<0)
        {
            start=input[i][1];
            flag=input[i][0];
        }

        if(i==n-1||input[i+1][0]!=flag)
        {
            int value;
            if(flag==0)
            {
                value=input[i][1]+1;
            }
            else{
                value=input[i][1]-start;
            }
            if(value>result)
            {
                result=value;
            }
            start=-1;
        }
    }

    printf("%d\n",result);

    for(i=0;i<n;i++)
    {
        delete input[i];
    }
    delete input;
}